The present invention relates to methods and apparatus for securely distributing one or more operating systems in a multiprocessing environment. More particularly, the present invention relates to methods and apparatus for managing the secure distribution of one or more operating systems to hardware manufacturers and for loading and executing the one or more operating systems without subjecting the operating systems to unauthorized access or modification in a multiprocessing environment.
In recent years, there has been an insatiable desire for faster computer processing data throughputs because cutting-edge computer applications are becoming more and more complex, and are placing ever increasing demands on processing systems. Graphics applications are among those that place the highest demands on a processing system because they require such vast number of data accesses, data computations, and data manipulations in relatively short periods of time to achieve desirable visual results. Real-time, multimedia applications also place a high demand on processing systems; indeed, they require extremely fast processing speeds, such as many thousands of megabits of data per second.
While some processing systems employ a single processor to achieve fast processing speeds, others are implemented utilizing multiprocessor architectures. In such multiprocessor systems, a plurality of sub-processors or processing elements operate substantially in parallel (or at least in concert) to achieve desired processing results. In this case, each individual processor in a cell typically has an operating system that is loaded into a memory (local to the processor or shared with other processors) and executed to boot up the processor.
During manufacturing of the conventional multiprocessing systems, a software developer provides an operating system to a hardware manufacturer to be loaded onto the multiprocessing system. As certain aspects of the operating system may be proprietary to the software developer, the operating system may include one or more security features and/or agreements with the hardware manufacturer to maintain any proprietary information in confidence. This conventional approach to OS security becomes problematic when the hardware manufacturer is a competitor of the operating system developer. This may become more common as multiprocessing systems employ more than one operating system running on more than one processor and/or more than one operating system running on the same processor at different times. Indeed, it is contemplated that multiprocessing systems will be open for use by many users and programs, each potentially with differing OS platforms. In this case, the proprietary details of each operating system may not only have to be kept secret from the hardware manufacturer, but also from possibly competing software developers whose software products are used in the same multiprocessing environment.
A need, therefore, arises for a method and system that addresses the above issues by providing a secure environment for one or more operating systems in a multiprocessing architecture.